package de.koller.reason.engine;

import de.koller.reason.RNode;
import de.koller.reason.render.obj.Texture;
import de.koller.reason.render.state.RGL;

public class ReasonEngine extends RNode {

	private Texture testTexture;
	
	@Override
	protected void init() {
		super.init();
		
		testTexture = new Texture( 32, 32 );
		testTexture.clear( 0xff0000ff );
		for( int i = 0; i < 32; i++ ) {
			testTexture.setPixel( 0xffffffff, i, 0 );
			testTexture.setPixel( 0xffffffff, i, 31 );
			testTexture.setPixel( 0xffffffff, 0, i );
			testTexture.setPixel( 0xffffffff, 31, i );
		}
	}

	@Override
	protected void update( int elapsedTime ) {
		super.update( elapsedTime );
		
		RGL gl = rroot.rgl;
		
		gl.bind( testTexture );
		gl.begin( RGL.PrimitivType.Quad )
				.vertex( -1,  0, 5 ).color( 0xffff0000 ).uvw( 0, 0 )
				.vertex( -1,  -2, 5 ).color( 0xff00ff00 ).uvw( 0, 3 )
				.vertex(  1,  -2, 5 ).color( 0xff0000ff ).uvw( 3, 3 )
				.vertex(  1,  0, 5 ).color( 0xffffff00 ).uvw( 3, 0 )
				.end();
		gl.begin( RGL.PrimitivType.Quad )
				.vertex( -100, 3, 0 ).color( 0xffff0000 ).uvw( 0, 0 )
				.vertex(  100, 3, 0 ).color( 0xff00ff00 ).uvw( 0, 30 )
				.vertex(  100, 3, 200 ).color( 0xff0000ff ).uvw( 30, 30 )
				.vertex( -100, 3, 200 ).color( 0xffffff00 ).uvw( 30, 0 )
				.end();
	}
	
}
